import myBaseurl from '@/api/hostRequest.js'
// 可以从外部引入baseURL,也可以定义到config下的baseURL中
let number = 0
export default {
	config: {
		// 处理token的方法
		getToken() {
			let token = uni.getStorageSync('userToken');
			return token
		},
		// 响应拦截器
		beforeRequest(options = {}) {
			return new Promise((resolve, reject) => {
				if (options.url == '/user/balance' || options.url.indexOf('/general_setting') !== -1) {
					options.url = myBaseurl.mybaseUrl + options.url;
				} else {
					options.url = myBaseurl.mybaseUrl + '/h5app/wxapp' + options.url;
				}
				options.method = options.method || 'GET';
				// 封装自己的请求头
				options.header = {
					Authorization: 'Bearer ' + this.getToken(),
					// 'Content-Type': 'application/x-www-form-urlencoded',
				}
				resolve(options)
			})
		},
		// 请求拦截器
		handleResponse(data) {
			return new Promise((resolve, reject) => {
				const [err, res] = data;
				//处理错误
				console.log('异常处理', res.data.data);
				if (res && res.data.data.status_code && res.data.data.status_code !== 200) {
					let msg = res.data.data.message || '请求错误';
					if (res.data.data.message == 'Unable to authenticate user.') {
						uni.showToast({
							icon: 'none',
							title: msg
						})
						uni.navigateTo({
							url: '/pages/index/login',
						})
						return
					} else {
						uni.showToast({
							icon: 'none',
							title: msg
						})
						return reject(msg);
					}


				}
				if (err) {
					uni.showToast({
						icon: 'none',
						title: '请求错误'
					})
					return reject(err);
				}
				return resolve(res.data)
			})
		}
	},
	// request 请求
	request(options = {}) {
		// console.log(this.config);
		return this.config.beforeRequest(options).then(opt => {
			// 这里看不懂的可以看上面 uni.request 三种请求方式的第二种
			return uni.request(opt)
		}).then(res => this.config.handleResponse(res))
	}
}
// // 全局请求封装
// const token = uni.getStorageSync('appToken')
// export default (url, method, params) => {
// 	console.log(url);
// 	console.log(method);
// 	return new Promise((resolve, reject) => {
// 		uni.request({
// 			url: myBaseurl.mybaseUrl + url,
// 			method: method,
// 			header: {
// 				token: token,
// 				oid: mybaseUrl.orgId,
// 				environment: mybaseUrl.environment,
// 				'env-version': mybaseUrl.env_version,
// 				'Access-Control-Allow-Origin': '*',
// 				'X-Requested-With': 'XMLHttpRequest'
// 			},
// 			data: params,
// 			success: res => {
// 				if (res.code == 1) {
// 					resolve(res.data);
// 				}
// 				if (res.data.code == 3) {
// 					uni.$u.toast('未登录请先登录')
// 					setTimeout(() => {
// 						uni.navigateTo({
// 							url: '/pIndex/login'
// 						})
// 					}, 1000)
// 					return false
// 				}
// 				if (res.data.code == 2) {
// 					if (number >= 1) {
// 						// return
// 					} else {
// 						uni.navigateTo({
// 							url: '/pages/index/startUp'
// 						})
// 					}
// 					uni.$u.toast(res.data.msg)
// 					number++

// 					return false
// 				}
// 				if (res.data.code == 0) {
// 					uni.$u.toast(res.data.msg)
// 					return false
// 				}
// 			},
// 			fail(err) {
// 				reject(err);
// 				console.log(err);
// 			},
// 			complete() {
// 				console.log(123);
// 				// uni.hideLoading();
// 			}
// 		});
// 	});
// };